#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define STACK_MAX_SIZE 100

#define bool int

typedef struct stack
{
    int * base;
    int * top;
    int number_of_elements;
} * Stack;

int init_stack(Stack * s);

int push(Stack s, char operator_or_operand);

int pop(Stack s, char * p_operator_or_operand);

int get_top(Stack s, char * symbol);

bool is_operator(char symbol);

bool is_operand(char symbol);

int evaluate(char * expression, int * result);